home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Collection of Tools & Utilities
/
Collection of Tools and Utilities.iso
/
comm
/
ca29_3.zip
/
LEARN.CMD
< prev
next >
Wrap
OS/2 REXX Batch file
|
1992-09-21
|
22KB
|
1,385 lines
SET TTHR OFF
S19="Learn ver 1.0 "
CURS N91,N92
LEGE S19
SUBD S18
DLDI S17
SSIZ N99
SAVE 0,0,N99-2,79
ON ESCA GOSU ESCAPE
SET FLAG(1) OFF
IF STRCMP "_PRIN" "ON"
SET FLAG(1) ON
PRINTER OFF
ENDI
Get_Outp:
S1="Enter a file name to be output:"
GOSU Ask_File
IF NOT SUCCESS EXIT
S16=S0
IF ISFILE S16
S0=S16*" already exists. Overwrite it? Y/N (cr=no)"
GOSU Ask_YN
IF NOT SUCCESS GOTO Get_Output
ENDI
FOPENO S16 TEXT
IF NOT SUCCESS
S0="Error opening output file: "*S16
GOSU Error
GOTO Get_outp
ENDI
GOSU Initial
SET CHAT OFF
GOTO START
Escape:
SET FLAG(0) ON
RETU
End_Lear:
DWIN CLEAR
IF FLAG(2) and STRCMP "_LOGG" "ON "
WRIT "LOG CLOSE!"
LOG CLOS
ENDI
WRIT "^Z" 2
FCLOSEO
SET DLDI S17
CHDI S18
REST
LOCA N91,N92
IF FLAG(1)
PRINTER ON
ELSE
PRINTER OFF
ENDI
RETU
Exit:
S0="Do you wish to terminate LEARN? Enter Y to terminate."
GOSU Ask_YN
IF SUCCESS
GOSU End_Lear
EXIT
ENDI
SET FLAG(0) OFF
RETU
Start:
N90=0
S11=""
S12=""
SET FLAG(0) OFF
SET FLAG(9) OFF
SET FLAG(8) OFF
GOSU Screen
LOCA 1,1
DWIN N99-12,2 N99-12 77
GOTO Main
Output:
WRIT S0
WRIT "!"
Main:
LOCA N93,N94
IF FLAG(0) GOSUB Exit
IF NOT HITKEY
IF RECEIVE GOSUB Receive
GOTO Main
ENDI
KEYG S1
LENG S1 N0
SWIT N0
CASE 1
GOTO ASCII
ENDC
CASE 2
GOTO CONTROL
ENDC
CASE 4
GOTO FUNCTION
ENDC
ENDS
GOTO Main
KbdDisp:
IF GT N90 0
S0=S10(0:n90-1)
PRES S0
ATSA N99-12,2 (Default) S0*" "
ENDI
N94=N90+2
GOTO Main
Receive:
DWIN 1,0,(N99-14),79
IF FLAG(1) PRINTER ON
LOCA N95,N96
S12=S11
RGET S11 80 1
CURS N95,N96
IF FLAG(1) PRINTER OFF
DWIN N99-12,2 N99-12,77
RETU
ASCII:
IF FLAG(8)
PRES S1
TRAN S1
GOTO Main
ENDI
IF GT (N90+2) 60
SOUN 100,100
GOTO Main
ENDI
S10(N90:N90)=S1
INC N90
IF STRCMP S1 "!" or STRCMP S1 "^"
S10(N90:N90)=S1
INC N90
ENDI
IF FLAG(9) GOTO Transmit
GOTO KbdDisp
Control:
S0="0x"*S1
N0=S0
N0=N0+64
S0="^"
ITOC N0 S0(1:1)
IF FLAG(8)
TRAN S0
GOTO Main
ENDI
IF (NOT FLAG(9)) and STRCMP S1 "08"
GOTO Backspac
ENDI
IF STRCMP S1 "0D"
GOTO RETURN
ENDI
IF GT (N90+2) 60
SOUN 100,100
GOTO Main
ENDI
S10(N90:N90+1)=S0(0:1)
N90=N90+2
IF FLAG(9) GOTO Transmit
GOTO KbdDisp
Backspac:
IF ZERO N90
GOTO KbdDisp
ENDI
DEC N90
IF STRCMP S10(N90-1:N90-1) "^" or STRCMP S10(N90-1:N90) "!!"
DEC N90
ENDI
GOTO KbdDisp
Return:
IF NOT ZERO N90
S10=S10(0:N90-1)*"!"
ELSE
S10="!"
ENDI
N90=N90+1
Transmit:
GOSU Waitfor
WRIT "TRANSMIT `""
IF STRCMP S10(N90-1:N90-1) "!!"
WRIT S10 N90-1
WRIT "!!" 2
ELSE
WRIT S10 N90
ENDI
WRIT "`"!"
TRAN S10(0:N90-1)
N90=0
CLEA (default)
N94=2
GOTO Main
Waitfor:
LJ S11
S11=S11&""
LENG S11 N1
IF NOT ZERO N1
S0=S11
GOTO EmitWait
ENDI
LJ S12
S12=S12&""
LENG S12 N1
IF NOT ZERO N1
S0=S12
GOTO EmitWait
ENDI
WRIT ";!"
WRIT "; WAITFOR may be needed here!"
WRIT ";!"
RETU
EmitWait:
PRES S0
LENG S0 N1
WRIT "WAITFOR `""
WRIT S0
WRIT "`"!"
WRIT ";*IF NOT WAITFOR GOTO ...!"
S11=""
S12=""
RETU
Function:
IF FLAG(8) and NOT STRCMP S1 "4000"
SOUN 100,100
GOTO Main
ENDI
SWIT S1
CASE "2E00"
GOTO Clear
ENDC
CASE "1200"
GOTO Echo
ENDC
CASE "2C00"
GOTO Mask
ENDC
CASE "2600"
GOTO ScrSize
ENDC
CASE "2300"
GOTO Hangup
ENDC
CASE "2000"
GOTO Dial
ENDC
CASE "1900"
GOTO Parms
ENDC
CASE "3100"
GOTO Encrypt
ENDC
CASE "2200"
GOTO Blnkln
ENDC
CASE "1000"
GOTO CRLF
ENDC
CASE "7500"
GOTO Break
ENDC
CASE "7200"
GOTO Printer
ENDC
CASE "4900"
GOTO Upload
ENDC
CASE "5100"
GOTO Download
ENDC
CASE "7800"
GOTO Alt_1
ENDC
CASE "7900"
GOTO Alt_2
ENDC
CASE "7A00"
GOTO Alt_3
ENDC
CASE "7B00"
GOTO Alt_4
ENDC
CASE "7C00"
GOTO Alt_5
ENDC
CASE "7D00"
GOTO Alt_6
ENDC
CASE "7E00"
GOTO Alt_7
ENDC
CASE "7F00"
GOTO Alt_8
ENDC
CASE "8000"
GOTO Alt_9
ENDC
CASE "8100"
GOTO Alt_0
ENDC
CASE "3B00"
GOTO Accessry
ENDC
CASE "3C00"
GOTO Script
ENDC
CASE "3D00"
GOTO Chdir
ENDC
CASE "3E00"
GOTO DlDir
ENDC
CASE "3F00"
GOTO LineChar
ENDC
CASE "4000"
GOTO Hold
ENDC
CASE "4100"
GOTO Log
ENDC
CASE "4300"
GOTO LogHold
ENDC
CASE "4400"
GOSU Help
ENDC
CASE "7100"
GOTO Shell
ENDC
DEFA
SOUN 100,100
ENDC
ENDS
GOTO Main
SHELL:
S16="_OFILE"
FCLOSEO
DWIN Clear
SHEL
DWIN N99-12,2 N99-12 77
LEGE S19
FOPENO S16 TEXT APPEND
GOTO Main
Clear:
DWIN 1,0,(N99-14),79
CLEA (default)
CURS N95,N96
DWIN N99-12,2 N99-12,77
LOCA N93,N94
S0="CLEAR"
GOTO Output
Echo:
S0="SET DUPLEX HALF"
IF STRCMP "_DUPL" "HALF"
S0="SET DUPLEX FULL"
ENDI
PERF S0
GOSU StatusLi
GOTO Output
Mask:
S0="SET MASK ON"
IF STRCMP "_MASK" "ON "
S0="SET MASK OFF"
ENDI
PERF S0
GOSU StatusLi
GOTO Output
ScrSize:
S0="SET 43"
IF GT "_SSIZ" 25
S0="SET 25"
ENDI
PERF S0
SSIZ N99
GOSU Screen
GOTO Output
Alt_0:
S0="MACRO 0"
GOTO Send_Mac
Alt_1:
S0="MACRO 1"
GOTO Send_Mac
Alt_2:
S0="MACRO 2"
GOTO Send_Mac
Alt_3:
S0="MACRO 3"
GOTO Send_Mac
Alt_4:
S0="MACRO 4"
GOTO Send_Mac
Alt_5:
S0="MACRO 5"
GOTO Send_Mac
Alt_6:
S0="MACRO 6"
GOTO Send_Mac
Alt_7:
S0="MACRO 7"
GOTO Send_Mac
Alt_8:
S0="MACRO 8"
GOTO Send_Mac
Alt_9:
S0="MACRO 9"
Send_Mac:
PERF S0
GOTO Output
Hangup:
GOSU Waitfor
S0="HANGUP"
PERF S0
GOTO Output
Break:
GOSU Waitfor
S0="BREAK"
PERF S0
GOTO Output
Printer:
IF FLAG(1)
S0="PRINTER OFF"
SET FLAG(1) OFF
ELSE
S0="PRINTER ON"
SET FLAG(1) ON
ENDI
WRIT S0*"!"
GOSU StatusLi
GOTO Main
LineChar:
IF FLAG(9)
SET FLAG(9) OFF
ELSE
SET FLAG(9) ON
ENDI
GOSU StatusLi
GOTO Main
Hold:
IF FLAG(8)
SET FLAG(8) OFF
ELSE
SET FLAG(8) ON
ENDI
GOSU StatusLi
GOTO Main
UpLoad:
GOSU Ask_Meth
S1="/NONAME/"
SWIT S0
CASE "_NULL"
GOTO Main
ENDC
CASE "0"
GOSU Ask_Name
S0="SENDFILE ZMODEM S1"
ENDC
CASE "1"
GOSU Ask_Name
S0="SENDFILE WXMODEM S1"
ENDC
CASE "2"
GOSU Ask_Name
S0="SENDFILE XMODEM S1"
ENDC
CASE "3"
GOSU Ask_Name
S0="SENDFILE ASCII S1"
ENDC
CASE "4"
GOSU Ask_Name
S0="SENDFILE YMODEM S1"
ENDC
CASE "5"
S0="SENDFILE CISB"
ENDC
CASE "6"
S0="SENDFILE QuickB"
ENDC
CASE "7"
GOSU Ask_Name
S0="SENDFILE KERMIT S1"
ENDC
CASE "8"
GOSU Ask_Name
S0="SENDFILE BYMODEM S1"
ENDC
CASE "9"
GOSU Ask_Name
S0="SENDFILE BYMOG S1"
ENDC
DEFA
SOUN 100,100
GOTO Main
ENDC
ENDS
Transfer:
IF NULL S1 GOTO Main
PERF S0
IF NOT STRCMP S1 "/NONAME/"
WRIT "; File transfer!"
WRIT "MESS `"Enter the file name: `"!"
WRIT "GET S1 60!"
ENDI
GOTO Output
DownLoad:
GOSU Ask_Meth
S1="/NONAME/"
SWIT S0
CASE "_NULL"
GOTO Main
ENDC
CASE "0"
S0="GETFILE ZMODEM S1"
ENDC
CASE "1"
GOSU Ask_Name
S0="GETFILE WXMODEM S1"
ENDC
CASE "2"
GOSU Ask_Name
S0="GETFILE XMODEM S1"
ENDC
CASE "3"
GOSU Ask_Name
S0="GETFILE ASCII S1"
ENDC
CASE "4"
GOSU Ask_Name
S0="GETFILE YMODEM S1"
ENDC
CASE "5"
S0="GETFILE CISB"
ENDC
CASE "6"
S0="GETFILE QuickB"
ENDC
CASE "7"
S0="GETFILE KERMIT"
ENDC
CASE "8"
S0="GETFILE BYMODEM"
ENDC
CASE "9"
S0="GETFILE BYMOG"
ENDC
DEFA
SOUN 100,100
GOTO Main
ENDC
ENDS
GOTO Transfer
Ask_Meth:
WOPE 2 20 14 60 (contrast) ASK_ESC
ATSA 2 22 (contrast) " Learn UpLoad/Download "
ATSA 3 22 (contrast) " 1) Windowed XMODEM"
ATSA 4 22 (contrast) " 2) CRC/Checksum XMODEM"
ATSA 5 22 (contrast) " 3) ASCII transfer "
ATSA 6 22 (contrast) " 4) YMODEM/XMODEM-1K"
ATSA 7 22 (contrast) " 5) CIS-B "
ATSA 8 22 (contrast) " 6) CIS Quick-B "
ATSA 9 22 (contrast) " 7) Kermit "
ATSA 10 22 (contrast) " 8) Batch YMODEM "
ATSA 11 22 (contrast) " 9) Batch YMODEM-G "
ATSA 11 22 (contrast) " 0) ZMODEM "
ATSA 12 20 (contrast) "├───────────────────────────────────────┤"
ATSA 13 22 (contrast) "Enter method #:"
ATSA 14 30 (contrast) " Press ESC to cancel "
ATGE 13 48 (contrast) 1 S0
WCLO
RETU
Ask_Name:
WOPE 10 10 13 70 (contrast) NAMEESC
ATSA 10 12 (contrast) " Learn Up/Down Filename "
ATSA 11 12 (contrast) "Enter a file name to be transferred:"
ATSA 13 30 (contrast) " Press ESC to cancel "
ATGE 12 12 (contrast) 54 S1
WCLO
LJ S1
S1=S1&""
RETU
NAMEESC:
S1=""
RETU
Dial:
GOSU Ask_Dial
IF NOT SUCCESS or NULL S2 GOTO Main
IF FIND S2 "m"
GOSU Ask_numb
IF FAILED or NULL S1 GOTO Main
MDIA S1
ELSE
DIAL S2
ENDI
IF FAILED GOTO Main
WRIT "; Dialing!"
IF FIND S2 "m"
WRIT "MDIAL `""
WRIT S1
WRIT "`"!"
WRIT "IF FAILED EXIT!"
ELSE
WRIT "IF NOT LINKED!"
WRIT " DIAL `""
WRIT S2
WRIT "`"!"
WRIT " IF FAILED EXIT!"
WRIT " ENDIF!"
ENDI
GOTO Main
Ask_Numb:
WOPE 10 10 13 70 (contrast) NAMEESC
ATSA 10 12 (contrast) " Learn Manual Dial "
ATSA 11 12 (contrast) "Enter the number to dial:"
ATSA 13 30 (contrast) " Press ESC to cancel "
ATGE 12 12 (contrast) 14 S1
WCLO
LJ S1
S1=S1&""
RETU
Ask_Dial:
N0=0
WOPE 2 20 15 60 (contrast) ASK_ESC
ATSA 2 22 (contrast) " Learn Dial "
ATSA 13 20 (contrast) "├───────────────────────────────────────┤"
ATSA 14 22 (contrast) "